package com.molichuxing.services.infrastructure.bean;

import java.math.BigDecimal;
import java.time.LocalDateTime;

import com.molichuxing.framework.bean.RootBean;

public class PaymentBean extends RootBean {
    /**
     *  id
     */
    private Integer id;

    /**
     * 用户id（订单类型为经销商时存经销商id） user_id
     */
    private Integer userId;

    /**
     * 订单编号 order_code
     */
    private Long orderCode;

    /**
	 * 排期id（订购、续订、加购为0） schedule_id
	 */
    private Integer scheduleId;

    /**
     * 存储设备ip,mac等可唯一标识设备的信息 device_info
     */
    private String deviceInfo;

    /**
     * 交易发起时间 time_start
     */
    private LocalDateTime timeStart;

    /**
     * 交易有效截止时间 time_end
     */
    private LocalDateTime timeEnd;

    /**
     * 付款流水号（第三方支付订单号） pay_number
     */
    private String payNumber;

    /**
     * 支付方式( 11：智能终端-微信， 12：智能终端-支付宝， 13：智能终端-pos机，14：智能终端-密码键盘，21：微信-H5， 22：微信-APP，23：微信-公众号，24：微信-扫码，25：微信-小程序，31：支付宝-H5，32：支付宝-APP，41: 线下支付，51：银联-H5，52：银联-APP) pay_way
     */
    private Integer payWay;

    /**
     * 支付金额 pay_amount
     */
    private BigDecimal payAmount;

    /**
     * 支付成功时间 pay_time
     */
    private LocalDateTime payTime;

    /**
     * 支付状态(0：待支付，1:成功，2：失败，3：关闭)　 pay_status
     */
    private Integer payStatus;

    /**
     * 第三方流水号 third_pay_number
     */
    private String thirdPayNumber;

    /**
     * 备注 remark
     */
    private String remark;

    /**
     * 业务类型（1：订阅，2：专属：3：经销商） business_type
     */
    private Integer businessType;

    /**
     * 费用类型（1：订购，2：续订，3：加购，4：结算，5：还款） cost_type
     */
    private Integer costType;

    /**
     * 预支付单信息 request_data
     */
    private String requestData;

    /**
     * 乐观锁标记 rev
     */
    private Integer rev;

    /**
     *  gmt_create
     */
    private LocalDateTime gmtCreate;

    /**
     *  gmt_modified
     */
    private LocalDateTime gmtModified;

    /**
     * payment_payment
     */
    private static final long serialVersionUID = 1L;

    /**
     * 
     * @date 2019-10-14 13:56:19
     * @return id 
     */
    @Override
	public Integer getId() {
        return id;
    }

    /**
     * 
     * @date 2019-10-14 13:56:19
     * @param id 
     */
    @Override
	public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 用户id（订单类型为经销商时存经销商id）
     * @date 2019-10-14 13:56:19
     * @return user_id 用户id（订单类型为经销商时存经销商id）
     */
    public Integer getUserId() {
        return userId;
    }

    /**
     * 用户id（订单类型为经销商时存经销商id）
     * @date 2019-10-14 13:56:19
     * @param userId 用户id（订单类型为经销商时存经销商id）
     */
    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    /**
     * 订单编号
     * @date 2019-10-14 13:56:19
     * @return order_code 订单编号
     */
    public Long getOrderCode() {
        return orderCode;
    }

    /**
     * 订单编号
     * @date 2019-10-14 13:56:19
     * @param orderCode 订单编号
     */
    public void setOrderCode(Long orderCode) {
        this.orderCode = orderCode;
    }

    /**
     * 排期id（订阅订单、专属全款订单、加购里程订单为0）
     * @date 2019-10-14 13:56:19
     * @return schedule_id 排期id（订阅订单、专属全款订单、加购里程订单为0）
     */
    public Integer getScheduleId() {
        return scheduleId;
    }

    /**
     * 排期id（订阅订单、专属全款订单、加购里程订单为0）
     * @date 2019-10-14 13:56:19
     * @param scheduleId 排期id（订阅订单、专属全款订单、加购里程订单为0）
     */
    public void setScheduleId(Integer scheduleId) {
        this.scheduleId = scheduleId;
    }

    /**
     * 存储设备ip,mac等可唯一标识设备的信息
     * @date 2019-10-14 13:56:19
     * @return device_info 存储设备ip,mac等可唯一标识设备的信息
     */
    public String getDeviceInfo() {
        return deviceInfo;
    }

    /**
     * 存储设备ip,mac等可唯一标识设备的信息
     * @date 2019-10-14 13:56:19
     * @param deviceInfo 存储设备ip,mac等可唯一标识设备的信息
     */
    public void setDeviceInfo(String deviceInfo) {
        this.deviceInfo = deviceInfo == null ? null : deviceInfo.trim();
    }

    /**
     * 交易发起时间
     * @date 2019-10-14 13:56:19
     * @return time_start 交易发起时间
     */
    public LocalDateTime getTimeStart() {
        return timeStart;
    }

    /**
     * 交易发起时间
     * @date 2019-10-14 13:56:19
     * @param timeStart 交易发起时间
     */
    public void setTimeStart(LocalDateTime timeStart) {
        this.timeStart = timeStart;
    }

    /**
     * 交易有效截止时间
     * @date 2019-10-14 13:56:19
     * @return time_end 交易有效截止时间
     */
    public LocalDateTime getTimeEnd() {
        return timeEnd;
    }

    /**
     * 交易有效截止时间
     * @date 2019-10-14 13:56:19
     * @param timeEnd 交易有效截止时间
     */
    public void setTimeEnd(LocalDateTime timeEnd) {
        this.timeEnd = timeEnd;
    }

    /**
     * 付款流水号（第三方支付订单号）
     * @date 2019-10-14 13:56:19
     * @return pay_number 付款流水号（第三方支付订单号）
     */
    public String getPayNumber() {
        return payNumber;
    }

    /**
     * 付款流水号（第三方支付订单号）
     * @date 2019-10-14 13:56:19
     * @param payNumber 付款流水号（第三方支付订单号）
     */
    public void setPayNumber(String payNumber) {
        this.payNumber = payNumber == null ? null : payNumber.trim();
    }

    /**
     * 支付方式( 11：智能终端-微信， 12：智能终端-支付宝， 13：智能终端-pos机，14：智能终端-密码键盘，21：微信-H5， 22：微信-APP，23：微信-公众号，24：微信-扫码，25：微信-小程序，31：支付宝-H5，32：支付宝-APP，41: 线下支付，51：银联-H5，52：银联-APP)
     * @date 2019-10-14 13:56:19
     * @return pay_way 支付方式( 11：智能终端-微信， 12：智能终端-支付宝， 13：智能终端-pos机，14：智能终端-密码键盘，21：微信-H5， 22：微信-APP，23：微信-公众号，24：微信-扫码，25：微信-小程序，31：支付宝-H5，32：支付宝-APP，41: 线下支付，51：银联-H5，52：银联-APP)
     */
    public Integer getPayWay() {
        return payWay;
    }

    /**
     * 支付方式( 11：智能终端-微信， 12：智能终端-支付宝， 13：智能终端-pos机，14：智能终端-密码键盘，21：微信-H5， 22：微信-APP，23：微信-公众号，24：微信-扫码，25：微信-小程序，31：支付宝-H5，32：支付宝-APP，41: 线下支付，51：银联-H5，52：银联-APP)
     * @date 2019-10-14 13:56:19
     * @param payWay 支付方式( 11：智能终端-微信， 12：智能终端-支付宝， 13：智能终端-pos机，14：智能终端-密码键盘，21：微信-H5， 22：微信-APP，23：微信-公众号，24：微信-扫码，25：微信-小程序，31：支付宝-H5，32：支付宝-APP，41: 线下支付，51：银联-H5，52：银联-APP)
     */
    public void setPayWay(Integer payWay) {
        this.payWay = payWay;
    }

    /**
     * 支付金额
     * @date 2019-10-14 13:56:19
     * @return pay_amount 支付金额
     */
    public BigDecimal getPayAmount() {
        return payAmount;
    }

    /**
     * 支付金额
     * @date 2019-10-14 13:56:19
     * @param payAmount 支付金额
     */
    public void setPayAmount(BigDecimal payAmount) {
        this.payAmount = payAmount;
    }

    /**
     * 支付成功时间
     * @date 2019-10-14 13:56:19
     * @return pay_time 支付成功时间
     */
    public LocalDateTime getPayTime() {
        return payTime;
    }

    /**
     * 支付成功时间
     * @date 2019-10-14 13:56:19
     * @param payTime 支付成功时间
     */
    public void setPayTime(LocalDateTime payTime) {
        this.payTime = payTime;
    }

    /**
     * 支付状态(0：待支付，1:成功，2：失败，3：关闭)　
     * @date 2019-10-14 13:56:19
     * @return pay_status 支付状态(0：待支付，1:成功，2：失败，3：关闭)　
     */
    public Integer getPayStatus() {
        return payStatus;
    }

    /**
     * 支付状态(0：待支付，1:成功，2：失败，3：关闭)　
     * @date 2019-10-14 13:56:19
     * @param payStatus 支付状态(0：待支付，1:成功，2：失败，3：关闭)　
     */
    public void setPayStatus(Integer payStatus) {
        this.payStatus = payStatus;
    }

    /**
     * 第三方流水号
     * @date 2019-10-14 13:56:19
     * @return third_pay_number 第三方流水号
     */
    public String getThirdPayNumber() {
        return thirdPayNumber;
    }

    /**
     * 第三方流水号
     * @date 2019-10-14 13:56:19
     * @param thirdPayNumber 第三方流水号
     */
    public void setThirdPayNumber(String thirdPayNumber) {
        this.thirdPayNumber = thirdPayNumber == null ? null : thirdPayNumber.trim();
    }

    /**
     * 备注
     * @date 2019-10-14 13:56:19
     * @return remark 备注
     */
    public String getRemark() {
        return remark;
    }

    /**
     * 备注
     * @date 2019-10-14 13:56:19
     * @param remark 备注
     */
    public void setRemark(String remark) {
        this.remark = remark == null ? null : remark.trim();
    }

    /**
     * 业务类型（1：订阅，2：专属：3：经销商）
     * @date 2019-10-14 13:56:19
     * @return business_type 业务类型（1：订阅，2：专属：3：经销商）
     */
    public Integer getBusinessType() {
        return businessType;
    }

    /**
     * 业务类型（1：订阅，2：专属：3：经销商）
     * @date 2019-10-14 13:56:19
     * @param businessType 业务类型（1：订阅，2：专属：3：经销商）
     */
    public void setBusinessType(Integer businessType) {
        this.businessType = businessType;
    }

    /**
     * 费用类型（1：订购，2：续订，3：加购，4：结算，5：还款）
     * @date 2019-10-14 13:56:19
     * @return cost_type 费用类型（1：订购，2：续订，3：加购，4：结算，5：还款）
     */
    public Integer getCostType() {
        return costType;
    }

    /**
     * 费用类型（1：订购，2：续订，3：加购，4：结算，5：还款）
     * @date 2019-10-14 13:56:19
     * @param costType 费用类型（1：订购，2：续订，3：加购，4：结算，5：还款）
     */
    public void setCostType(Integer costType) {
        this.costType = costType;
    }

    /**
     * 预支付单信息
     * @date 2019-10-14 13:56:19
     * @return request_data 预支付单信息
     */
    public String getRequestData() {
        return requestData;
    }

    /**
     * 预支付单信息
     * @date 2019-10-14 13:56:19
     * @param requestData 预支付单信息
     */
    public void setRequestData(String requestData) {
        this.requestData = requestData == null ? null : requestData.trim();
    }

    /**
     * 乐观锁标记
     * @date 2019-10-14 13:56:19
     * @return rev 乐观锁标记
     */
    public Integer getRev() {
        return rev;
    }

    /**
     * 乐观锁标记
     * @date 2019-10-14 13:56:19
     * @param rev 乐观锁标记
     */
    public void setRev(Integer rev) {
        this.rev = rev;
    }

    /**
     * 
     * @date 2019-10-14 13:56:19
     * @return gmt_create 
     */
    @Override
	public LocalDateTime getGmtCreate() {
        return gmtCreate;
    }

    /**
     * 
     * @date 2019-10-14 13:56:19
     * @param gmtCreate 
     */
    @Override
	public void setGmtCreate(LocalDateTime gmtCreate) {
        this.gmtCreate = gmtCreate;
    }

    /**
     * 
     * @date 2019-10-14 13:56:19
     * @return gmt_modified 
     */
    @Override
	public LocalDateTime getGmtModified() {
        return gmtModified;
    }

    /**
     * 
     * @date 2019-10-14 13:56:19
     * @param gmtModified 
     */
    @Override
	public void setGmtModified(LocalDateTime gmtModified) {
        this.gmtModified = gmtModified;
    }

    /**
     *
     * @mbg.generated
     */
    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        PaymentBean other = (PaymentBean) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getUserId() == null ? other.getUserId() == null : this.getUserId().equals(other.getUserId()))
            && (this.getOrderCode() == null ? other.getOrderCode() == null : this.getOrderCode().equals(other.getOrderCode()))
            && (this.getScheduleId() == null ? other.getScheduleId() == null : this.getScheduleId().equals(other.getScheduleId()))
            && (this.getDeviceInfo() == null ? other.getDeviceInfo() == null : this.getDeviceInfo().equals(other.getDeviceInfo()))
            && (this.getTimeStart() == null ? other.getTimeStart() == null : this.getTimeStart().equals(other.getTimeStart()))
            && (this.getTimeEnd() == null ? other.getTimeEnd() == null : this.getTimeEnd().equals(other.getTimeEnd()))
            && (this.getPayNumber() == null ? other.getPayNumber() == null : this.getPayNumber().equals(other.getPayNumber()))
            && (this.getPayWay() == null ? other.getPayWay() == null : this.getPayWay().equals(other.getPayWay()))
            && (this.getPayAmount() == null ? other.getPayAmount() == null : this.getPayAmount().equals(other.getPayAmount()))
            && (this.getPayTime() == null ? other.getPayTime() == null : this.getPayTime().equals(other.getPayTime()))
            && (this.getPayStatus() == null ? other.getPayStatus() == null : this.getPayStatus().equals(other.getPayStatus()))
            && (this.getThirdPayNumber() == null ? other.getThirdPayNumber() == null : this.getThirdPayNumber().equals(other.getThirdPayNumber()))
            && (this.getRemark() == null ? other.getRemark() == null : this.getRemark().equals(other.getRemark()))
            && (this.getBusinessType() == null ? other.getBusinessType() == null : this.getBusinessType().equals(other.getBusinessType()))
            && (this.getCostType() == null ? other.getCostType() == null : this.getCostType().equals(other.getCostType()))
            && (this.getRequestData() == null ? other.getRequestData() == null : this.getRequestData().equals(other.getRequestData()))
            && (this.getRev() == null ? other.getRev() == null : this.getRev().equals(other.getRev()))
            && (this.getGmtCreate() == null ? other.getGmtCreate() == null : this.getGmtCreate().equals(other.getGmtCreate()))
            && (this.getGmtModified() == null ? other.getGmtModified() == null : this.getGmtModified().equals(other.getGmtModified()));
    }

    /**
     *
     * @mbg.generated
     */
    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getUserId() == null) ? 0 : getUserId().hashCode());
        result = prime * result + ((getOrderCode() == null) ? 0 : getOrderCode().hashCode());
        result = prime * result + ((getScheduleId() == null) ? 0 : getScheduleId().hashCode());
        result = prime * result + ((getDeviceInfo() == null) ? 0 : getDeviceInfo().hashCode());
        result = prime * result + ((getTimeStart() == null) ? 0 : getTimeStart().hashCode());
        result = prime * result + ((getTimeEnd() == null) ? 0 : getTimeEnd().hashCode());
        result = prime * result + ((getPayNumber() == null) ? 0 : getPayNumber().hashCode());
        result = prime * result + ((getPayWay() == null) ? 0 : getPayWay().hashCode());
        result = prime * result + ((getPayAmount() == null) ? 0 : getPayAmount().hashCode());
        result = prime * result + ((getPayTime() == null) ? 0 : getPayTime().hashCode());
        result = prime * result + ((getPayStatus() == null) ? 0 : getPayStatus().hashCode());
        result = prime * result + ((getThirdPayNumber() == null) ? 0 : getThirdPayNumber().hashCode());
        result = prime * result + ((getRemark() == null) ? 0 : getRemark().hashCode());
        result = prime * result + ((getBusinessType() == null) ? 0 : getBusinessType().hashCode());
        result = prime * result + ((getCostType() == null) ? 0 : getCostType().hashCode());
        result = prime * result + ((getRequestData() == null) ? 0 : getRequestData().hashCode());
        result = prime * result + ((getRev() == null) ? 0 : getRev().hashCode());
        result = prime * result + ((getGmtCreate() == null) ? 0 : getGmtCreate().hashCode());
        result = prime * result + ((getGmtModified() == null) ? 0 : getGmtModified().hashCode());
        return result;
    }

    /**
     *
     * @mbg.generated
     */
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", userId=").append(userId);
        sb.append(", orderCode=").append(orderCode);
        sb.append(", scheduleId=").append(scheduleId);
        sb.append(", deviceInfo=").append(deviceInfo);
        sb.append(", timeStart=").append(timeStart);
        sb.append(", timeEnd=").append(timeEnd);
        sb.append(", payNumber=").append(payNumber);
        sb.append(", payWay=").append(payWay);
        sb.append(", payAmount=").append(payAmount);
        sb.append(", payTime=").append(payTime);
        sb.append(", payStatus=").append(payStatus);
        sb.append(", thirdPayNumber=").append(thirdPayNumber);
        sb.append(", remark=").append(remark);
        sb.append(", businessType=").append(businessType);
        sb.append(", costType=").append(costType);
        sb.append(", requestData=").append(requestData);
        sb.append(", rev=").append(rev);
        sb.append(", gmtCreate=").append(gmtCreate);
        sb.append(", gmtModified=").append(gmtModified);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}